package net.hn.hnms.biz.analysis.service;

import net.hn.hnms.biz.analysis.domain.CoalSpontaneousCombustionAlarm;
import net.hn.hnms.biz.analysis.domain.OffDutyRecord;
import net.hn.hnms.biz.analysis.domain.dto.*;
import net.hn.hnms.biz.analysis.domain.vo.SensorMonitorVo;

import java.util.List;

public interface ISafetyService {
    /**
     * 获取测点时间范围最大值
     *
     * @param svo
     * @return
     */
    List<SensorMonitorDto> getHisSensorMonitor(SensorMonitorVo svo);

    /**
     * 查询矿时间范围内是否有超员数据
     *
     * @param beginTime
     * @param endTime
     * @param code
     * @return
     */
    int getOvercrowdData(String beginTime, String endTime, String code);

    int getLeaderOnDuty(String beginTime, String endTime, String code);

    List<HisSensorAlarmDto> getHisSensorAlarm(String beginTime, String endTime, String code);

    int getVentilatorOffineStatus(String beginTime, String endTime, String code);

    List<String> getSenorCablirationAlarm(String begin15Time, String end15Time, String code);

    List<SensorMonitorDto> getHisCoalfaceGas(String beginTime, String endTime, String code);

    List<SensorMonitorDto> getCoalfaceOxygen(String beginTime, String endTime, String code);

    List<SensorMonitorDto> getCoalfaceWindspeed(String beginTime, String endTime, String code);

    int getGasAlarmCount(String beginTime, String endTime, String code);

    int getGasAlarmUndoneCount(String beginTime, String endTime, String code);

    Float getWaterInflowDay(String beginTime, String endTime, String code);

    List<LongViewHoleDto> getLongViewHoleData(String lastBeginTime, String lastEndTime, String code);

    List<AreaStaffCountDto> getDustExpousreDurationPersonCount(List<String> coalfaceId, String lastBeginTime, String lastEndTime, String code);

    List<AreaStaffCountDto> getDustExpousrePersonCount(List<String> coalfaceId, String lastBeginTime, String lastEndTime, String code);

    List<AlarmInfoDto> getCoalfaceWindspeedMaxValue(String lastBeginTime, String lastEndTime, String code);

    List<GroundPressureDto> getGroundPressureData(String lastBeginTime, String lastEndTime, String code);

    List<OffDutyDto> getOffDutyList(String bTime, String endTime, String code);

    OffDutyDto getYesterdayWellOutTime(String beforeBegintime, String beforeEndTime, String code);

    List<OffDutyDto> getCurrentLeaderDuty(String beginTime, String endTime, String code);

    void saveOffDutyRecord(List<OffDutyRecord> offDutyRecords);

    List<SensorMonitorDto> selectSensorAlarmData(String sensorType, String beginTime, String endTime, String keywords);

    void insertCoalSpontaneousCombustionAlarm(List<CoalSpontaneousCombustionAlarm> coalSpontaneousCombustionAlarmList);

    List<OffDutyDto> getLeaderAttendencyByTime(String lastBeginTime, String lastEndTime, String code);

    List<WellOutDto> getWellOutData(String lastBeginTime, String lastEndTime, String code);

    List<BaseOverManAlarm> getOverManAlarm(String lastBeginTime, String lastEndTime, String code);

    List<RoofAbscissionDto> getRoofAbscissionData(String lastBeginTime, String lastEndTime, String code);

    List<SupportPressureDto> getSupportPressureData(String lastBeginTime, String lastEndTime, String code);

    Integer getKeyAreaStaffCount(String beginTime, String endTime, String code);

    Integer getStaffCount(String beginTime, String endTime, String code);

    Integer getSpecialStaffCount(String beginTime, String endTime, String code);

    Integer getLeaderCount(String beginTime, String endTime, String code);

    List<WaterEmissionAlarmDto> getWaterInflowData(String bTime, String eTime, String code);

    List<BaseStationInfoDto> getSensorInfo(String sensorType, String keywords);

    List<SensorDataDto> getSensorData(String sensorCode, String bTime, String eTime);

    void batchInsertSensorData(List<SensorConvertedData> resultList);

    void batchInsertSensorPredData(List<SensorConvertedData> sensorConvertedData);
}
